/*=====================================================================================================*/
/*=====================================================================================================*/
#include "stm32f1_system.h"
#include "uMultimeter.h"
#include "uMultimeter_ui.h"
#include "uMultimeter_measure.h"
#include "module_ssd1331.h"
#include "module_ad5292.h"

#include "exp_digiPower.h"
/*====================================================================================================*/
/*====================================================================================================*
**函數 : ExpPOW_Init
**功能 : DigiPower Config & Init
**輸入 : None
**輸出 : None
**使用 : ExpPOW_Init();
**====================================================================================================*/
/*====================================================================================================*/
void ExpPOW_Init( void )
{
  AD5292_Config();
  Delay_1ms(1);
  AD5292_Init();
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : ExpPOW_setVol
**功能 : DigiPower Set Vol
**輸入 : None
**輸出 : None
**使用 : ExpPOW_setVol();
**====================================================================================================*/
/*====================================================================================================*/
void ExpPOW_setVol( uint16_t voltage )
{
  // trans
  AD5292_WriteRDAC(voltage);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : ExpPOW_setVol
**功能 : DigiPower Set Vol
**輸入 : None
**輸出 : None
**使用 : ExpPOW_setVol();
**====================================================================================================*/
/*====================================================================================================*/
void modeEXP_POW( void )
{
  static uint16_t i = 0;
  static uint8_t state = 1;

  uint32_t readData = 0;

  i = (state) ? i + 1 : i - 1;
  if(i == 360)
    state = 0;
  else if( i == 0)
    state = 1;

  readData = uMultimeter_measure_ADCtoVol(ProbeICH_ReadAveADC(0) << 1);

  ExpPOW_setVol(i);
  OLED_PutNum_5x7(2, 16, Type_D, 3, i, WHITE, BLACK);
  OLED_PutNum_5x7(2, 26, Type_D, 5, readData, WHITE, BLACK);
}
/*=====================================================================================================*/
/*=====================================================================================================*/
